(defpackage #:lilu-app
  (:use #:cl #:lilu-desk)
  (:export
   #:application
   #:application-name
   #:application-pretty-name
   #:application-tags
   #:application-installed-p
   #:application-configured-p
   #:application-version

   #:configure-application
   #:install-application

   #:load-application

   #:register-application
   #:unregister-application
   #:find-application
   #:find-applications
   #:registered-applications
   #:unregister-all-applications
   #:list-all-applications
   #:discover-applications

   #:launch-application

   #:program-application-mixin
   #:simple-program-application-mixin
   #:make-simple-program-command
   #:make-simple-program-shell-command
   #:run-simple-program
   #:run-simple-shell-program

   #:simple-debugger-application-mixin
   #:cl-application-mixin
   #:application-system-name
   #:application-loaded-p
   #:application-debug-system-p
   #:application-git-repo

   #:install-application
   #:load-application
   ;;;
   ;;; standard applications
   ;;;
   ;; repl
   #:run-open-repl
   #:find-repl
   #:list-all-repls
   #:*repl*
   #:use-repl
   #:select-repl
   #:open-repl
   ;; editor
   #:run-open-editor
   #:find-editor
   #:list-all-editors
   #:*editor*
   #:use-editor
   #:select-editor
   #:open-editor
   #:edit
   ;; browser
   #:run-open-browser
   #:find-browser
   #:list-all-browsers
   #:*browser*
   #:use-browser
   #:select-browser
   #:open-browser
   #:view-web-page
   ;; terminal
   #:run-open-terminal
   #:find-terminal
   #:list-all-terminals
   #:*terminal*
   #:use-terminal
   #:select-terminal
   #:open-terminal
   #:exec-terminal-command
   ;; dynamic menu
   #:run-dynamic-menu
   #:find-dmenu
   #:list-all-dmenus
   #:*dmenu*
   #:use-dmenu
   #:select-dmenu
   #:dynamic-menu
   ;; debugger
   #:get-debugger-hook
   #:run-invoke-debugger-hook
   #:find-debugger
   #:list-all-debuggers
   #:*debugger*
   #:use-debugger
   #:select-debugger
   #:invoke-debugger-hook
   ;; inspector
   #:run-open-inspector
   #:find-inspector
   #:list-all-inspectors
   #:*inspector*
   #:use-inspector
   #:select-inspector
   #:open-inspector
   #:inspect-object
   ;; app
   #:run-open-app
   #:find-app
   #:list-all-apps
   #:select-app
   #:open-app
   #:simple-program-app
   #:simple-terminal-app
   #:simple-cl-app
   ))
